package com.transaction.manage.model.dto;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
import java.util.List;

@Table(name = "channel_info")
public class ChannelInfo {
    @Id
    private Integer id;

    /**
     * 渠道编码
     */
    @Column(name = "channel_code")
    private String channelCode;

    /**
     * 渠道名称
     */
    @Column(name = "channel_name")
    private String channelName;

    /**
     * 接收人编码
     */
    @Column(name = "receive_code")
    private String receiveCode;

    /**
     * 发送人编码
     */
    @Column(name = "send_code")
    private String sendCode;

    /**
     * 所属市场编码：01：银行；02：券商
     */
    @Column(name = "market_code")
    private String marketCode;

    /**
     * 所属中登版本；暂时有20,21,22
     */
    @Column(name = "version_code")
    private String versionCode;

    /**
     * 电子合同校验方式；00：不校验；01：账户校验；02：交易校验；03：账户交易关联校验
     */
    @Column(name = "contract_check_type")
    private String contractCheckType;

    /**
     * 个人开户证件类型
     */
    @Column(name = "indi_open_account_type")
    private String indiOpenAccountType;
    private List<String> indiOpenAccountTypeArr;

    /**
     * 机构开户证件类型
     */
    @Column(name = "inst_open_account_type")
    private String instOpenAccountType;
    private List<String> instOpenAccountTypeArr;

    /**
     * 需要处理的文件类型；01：账户；03：交易；31:电子合同；43：电子合同：R1：非居民；X1：个人反洗钱；X3：机构反洗钱
     */
    @Column(name = "deal_file_type")
    private String dealFileType;
    private List<String> dealFileTypeArr;

    /**
     * 需要预确认的产品类型
     */
    @Column(name = "before_cfm_fund_type")
    private String beforeCfmFundType;
    private List<String> beforeCfmFundTypeArr;

    /**
     * 需要26份额明细的产品类型
     */
    @Column(name = "vol_detail_fund_type")
    private String volDetailFundType;
    private List<String> volDetailFundTypeArr;

    /**
     * 二次强增产品类型
     */
    @Column(name = "second_force_add_fund_type")
    private String secondForceAddFundType;
    private List<String> secondForceAddFundTypeArr;

    /**
     * 是否需要资金清算文件：0：否；1是
     */
    @Column(name = "capital_clearing_flag")
    private Integer capitalClearingFlag;

    /**
     * 是否需要资金划付邮件；0：否：1：是
     */
    @Column(name = "transfer_email_flag")
    private Integer transferEmailFlag;

    /**
     * 资金划付邮件发送方式：0：统一发送；X：T+X日发送T日
     */
    @Column(name = "transfer_email_send_type")
    private Integer transferEmailSendType;

    /**
     * 渠道业务经理邮箱
     */
    @Column(name = "biz_manager_email")
    private String bizManagerEmail;

    /**
     * 邮件抄送邮箱
     */
    @Column(name = "cc_send_email")
    private String ccSendEmail;

    /**
     * 操作状态：01：新增；02：修改；00：删除
     */
    @Column(name = "valid_flag")
    private String validFlag;

    /**
     * 复核状态：00：为符合；01：已复核
     */
    @Column(name = "check_flag")
    private String checkFlag;

    private Date utime;

    public ChannelInfo() {
    }


    public ChannelInfo(String channelCode) {
        this.channelCode = channelCode;
    }

    /**
     * @return id
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取渠道编码
     *
     * @return channel_code - 渠道编码
     */
    public String getChannelCode() {
        return channelCode;
    }

    /**
     * 设置渠道编码
     *
     * @param channelCode 渠道编码
     */
    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode;
    }

    /**
     * 获取渠道名称
     *
     * @return channel_name - 渠道名称
     */
    public String getChannelName() {
        return channelName;
    }

    /**
     * 设置渠道名称
     *
     * @param channelName 渠道名称
     */
    public void setChannelName(String channelName) {
        this.channelName = channelName;
    }

    /**
     * 获取接收人编码
     *
     * @return receive_code - 接收人编码
     */
    public String getReceiveCode() {
        return receiveCode;
    }

    /**
     * 设置接收人编码
     *
     * @param receiveCode 接收人编码
     */
    public void setReceiveCode(String receiveCode) {
        this.receiveCode = receiveCode;
    }

    /**
     * 获取发送人编码
     *
     * @return send_code - 发送人编码
     */
    public String getSendCode() {
        return sendCode;
    }

    /**
     * 设置发送人编码
     *
     * @param sendCode 发送人编码
     */
    public void setSendCode(String sendCode) {
        this.sendCode = sendCode;
    }

    /**
     * 获取所属市场编码：01：银行；02：券商
     *
     * @return market_code - 所属市场编码：01：银行；02：券商
     */
    public String getMarketCode() {
        return marketCode;
    }

    /**
     * 设置所属市场编码：01：银行；02：券商
     *
     * @param marketCode 所属市场编码：01：银行；02：券商
     */
    public void setMarketCode(String marketCode) {
        this.marketCode = marketCode;
    }

    /**
     * 获取所属中登版本；暂时有20,21,22
     *
     * @return version_code - 所属中登版本；暂时有20,21,22
     */
    public String getVersionCode() {
        return versionCode;
    }

    /**
     * 设置所属中登版本；暂时有20,21,22
     *
     * @param versionCode 所属中登版本；暂时有20,21,22
     */
    public void setVersionCode(String versionCode) {
        this.versionCode = versionCode;
    }

    /**
     * 获取电子合同校验方式；00：不校验；01：账户校验；02：交易校验；03：账户交易关联校验
     *
     * @return contract_check_type - 电子合同校验方式；00：不校验；01：账户校验；02：交易校验；03：账户交易关联校验
     */
    public String getContractCheckType() {
        return contractCheckType;
    }

    /**
     * 设置电子合同校验方式；00：不校验；01：账户校验；02：交易校验；03：账户交易关联校验
     *
     * @param contractCheckType 电子合同校验方式；00：不校验；01：账户校验；02：交易校验；03：账户交易关联校验
     */
    public void setContractCheckType(String contractCheckType) {
        this.contractCheckType = contractCheckType;
    }

    /**
     * 获取个人开户证件类型
     *
     * @return indi_open_account_type - 个人开户证件类型
     */
    public String getIndiOpenAccountType() {
        return indiOpenAccountType;
    }

    /**
     * 设置个人开户证件类型
     *
     * @param indiOpenAccountType 个人开户证件类型
     */
    public void setIndiOpenAccountType(String indiOpenAccountType) {
        this.indiOpenAccountType = indiOpenAccountType;
    }

    /**
     * 获取机构开户证件类型
     *
     * @return inst_open_account_type - 机构开户证件类型
     */
    public String getInstOpenAccountType() {
        return instOpenAccountType;
    }

    /**
     * 设置机构开户证件类型
     *
     * @param instOpenAccountType 机构开户证件类型
     */
    public void setInstOpenAccountType(String instOpenAccountType) {
        this.instOpenAccountType = instOpenAccountType;
    }

    /**
     * 获取需要处理的文件类型；01：账户；03：交易；31:电子合同；43：电子合同：R1：非居民；X1：个人反洗钱；X3：机构反洗钱
     *
     * @return deal_file_type - 需要处理的文件类型；01：账户；03：交易；31:电子合同；43：电子合同：R1：非居民；X1：个人反洗钱；X3：机构反洗钱
     */
    public String getDealFileType() {
        return dealFileType;
    }

    /**
     * 设置需要处理的文件类型；01：账户；03：交易；31:电子合同；43：电子合同：R1：非居民；X1：个人反洗钱；X3：机构反洗钱
     *
     * @param dealFileType 需要处理的文件类型；01：账户；03：交易；31:电子合同；43：电子合同：R1：非居民；X1：个人反洗钱；X3：机构反洗钱
     */
    public void setDealFileType(String dealFileType) {
        this.dealFileType = dealFileType;
    }

    /**
     * 获取需要预确认的产品类型
     *
     * @return before_cfm_fund_type - 需要预确认的产品类型
     */
    public String getBeforeCfmFundType() {
        return beforeCfmFundType;
    }

    /**
     * 设置需要预确认的产品类型
     *
     * @param beforeCfmFundType 需要预确认的产品类型
     */
    public void setBeforeCfmFundType(String beforeCfmFundType) {
        this.beforeCfmFundType = beforeCfmFundType;
    }

    /**
     * 获取需要26份额明细的产品类型
     *
     * @return vol_detail_fund_type - 需要26份额明细的产品类型
     */
    public String getVolDetailFundType() {
        return volDetailFundType;
    }

    /**
     * 设置需要26份额明细的产品类型
     *
     * @param volDetailFundType 需要26份额明细的产品类型
     */
    public void setVolDetailFundType(String volDetailFundType) {
        this.volDetailFundType = volDetailFundType;
    }

    /**
     * 获取二次强增产品类型
     *
     * @return second_force_add_fund_type - 二次强增产品类型
     */
    public String getSecondForceAddFundType() {
        return secondForceAddFundType;
    }

    /**
     * 设置二次强增产品类型
     *
     * @param secondForceAddFundType 二次强增产品类型
     */
    public void setSecondForceAddFundType(String secondForceAddFundType) {
        this.secondForceAddFundType = secondForceAddFundType;
    }

    /**
     * 获取是否需要资金清算文件：0：否；1是
     *
     * @return capital_clearing_flag - 是否需要资金清算文件：0：否；1是
     */
    public Integer getCapitalClearingFlag() {
        return capitalClearingFlag;
    }

    /**
     * 设置是否需要资金清算文件：0：否；1是
     *
     * @param capitalClearingFlag 是否需要资金清算文件：0：否；1是
     */
    public void setCapitalClearingFlag(Integer capitalClearingFlag) {
        this.capitalClearingFlag = capitalClearingFlag;
    }

    /**
     * 获取是否需要资金划付邮件；0：否：1：是
     *
     * @return transfer_email_flag - 是否需要资金划付邮件；0：否：1：是
     */
    public Integer getTransferEmailFlag() {
        return transferEmailFlag;
    }

    /**
     * 设置是否需要资金划付邮件；0：否：1：是
     *
     * @param transferEmailFlag 是否需要资金划付邮件；0：否：1：是
     */
    public void setTransferEmailFlag(Integer transferEmailFlag) {
        this.transferEmailFlag = transferEmailFlag;
    }

    /**
     * 获取资金划付邮件发送方式：0：统一发送；X：T+X日发送T日
     *
     * @return transfer_email_send_type - 资金划付邮件发送方式：0：统一发送；X：T+X日发送T日
     */
    public Integer getTransferEmailSendType() {
        return transferEmailSendType;
    }

    /**
     * 设置资金划付邮件发送方式：0：统一发送；X：T+X日发送T日
     *
     * @param transferEmailSendType 资金划付邮件发送方式：0：统一发送；X：T+X日发送T日
     */
    public void setTransferEmailSendType(Integer transferEmailSendType) {
        this.transferEmailSendType = transferEmailSendType;
    }

    /**
     * 获取渠道业务经理邮箱
     *
     * @return biz_manager_email - 渠道业务经理邮箱
     */
    public String getBizManagerEmail() {
        return bizManagerEmail;
    }

    /**
     * 设置渠道业务经理邮箱
     *
     * @param bizManagerEmail 渠道业务经理邮箱
     */
    public void setBizManagerEmail(String bizManagerEmail) {
        this.bizManagerEmail = bizManagerEmail;
    }

    /**
     * 获取邮件抄送邮箱
     *
     * @return cc_send_email - 邮件抄送邮箱
     */
    public String getCcSendEmail() {
        return ccSendEmail;
    }

    /**
     * 设置邮件抄送邮箱
     *
     * @param ccSendEmail 邮件抄送邮箱
     */
    public void setCcSendEmail(String ccSendEmail) {
        this.ccSendEmail = ccSendEmail;
    }

    /**
     * 获取操作状态：01：新增；02：修改；00：删除
     *
     * @return valid_flag - 操作状态：01：新增；02：修改；00：删除
     */
    public String getValidFlag() {
        return validFlag;
    }

    /**
     * 设置操作状态：01：新增；02：修改；00：删除
     *
     * @param validFlag 操作状态：01：新增；02：修改；00：删除
     */
    public void setValidFlag(String validFlag) {
        this.validFlag = validFlag;
    }

    /**
     * 获取复核状态：00：为符合；01：已复核
     *
     * @return check_flag - 复核状态：00：为符合；01：已复核
     */
    public String getCheckFlag() {
        return checkFlag;
    }

    /**
     * 设置复核状态：00：为符合；01：已复核
     *
     * @param checkFlag 复核状态：00：为符合；01：已复核
     */
    public void setCheckFlag(String checkFlag) {
        this.checkFlag = checkFlag;
    }

    /**
     * @return utime
     */
    public Date getUtime() {
        return utime;
    }

    /**
     * @param utime
     */
    public void setUtime(Date utime) {
        this.utime = utime;
    }

    public List<String> getIndiOpenAccountTypeArr() {
        return indiOpenAccountTypeArr;
    }

    public void setIndiOpenAccountTypeArr(List<String> indiOpenAccountTypeArr) {
        this.indiOpenAccountTypeArr = indiOpenAccountTypeArr;
    }

    public List<String> getInstOpenAccountTypeArr() {
        return instOpenAccountTypeArr;
    }

    public void setInstOpenAccountTypeArr(List<String> instOpenAccountTypeArr) {
        this.instOpenAccountTypeArr = instOpenAccountTypeArr;
    }

    public List<String> getDealFileTypeArr() {
        return dealFileTypeArr;
    }

    public void setDealFileTypeArr(List<String> dealFileTypeArr) {
        this.dealFileTypeArr = dealFileTypeArr;
    }

    public List<String> getBeforeCfmFundTypeArr() {
        return beforeCfmFundTypeArr;
    }

    public void setBeforeCfmFundTypeArr(List<String> beforeCfmFundTypeArr) {
        this.beforeCfmFundTypeArr = beforeCfmFundTypeArr;
    }

    public List<String> getVolDetailFundTypeArr() {
        return volDetailFundTypeArr;
    }

    public void setVolDetailFundTypeArr(List<String> volDetailFundTypeArr) {
        this.volDetailFundTypeArr = volDetailFundTypeArr;
    }

    public List<String> getSecondForceAddFundTypeArr() {
        return secondForceAddFundTypeArr;
    }

    public void setSecondForceAddFundTypeArr(List<String> secondForceAddFundTypeArr) {
        this.secondForceAddFundTypeArr = secondForceAddFundTypeArr;
    }
}